package com.ruoyi.system.service;

import com.ruoyi.common.core.domain.entity.system.SysJishiOrder;

import java.util.List;

/**
 * 计时计费订单Service接口
 *
 * @author zjw
 * @date 2023-08-18
 */
public interface ISysJishiOrderService {
    /**
     * 查询计时计费订单
     *
     * @param orderId 计时计费订单主键
     * @return 计时计费订单
     */
    public SysJishiOrder selectSysJishiOrderByOrderId(String orderId);

    /**
     * 查询计时计费订单列表
     *
     * @param sysJishiOrder 计时计费订单
     * @return 计时计费订单集合
     */
    public List<SysJishiOrder> selectSysJishiOrderList(SysJishiOrder sysJishiOrder);

    /**
     * 新增计时计费订单
     *
     * @param sysJishiOrder 计时计费订单
     * @return 结果
     */
    public int insertSysJishiOrder(SysJishiOrder sysJishiOrder);

    /**
     * 修改计时计费订单
     *
     * @param sysJishiOrder 计时计费订单
     * @return 结果
     */
    public int updateSysJishiOrder(SysJishiOrder sysJishiOrder);

    /**
     * 批量删除计时计费订单
     *
     * @param orderIds 需要删除的计时计费订单主键集合
     * @return 结果
     */
    public int deleteSysJishiOrderByOrderIds(Long[] orderIds);

    /**
     * 删除计时计费订单信息
     *
     * @param orderId 计时计费订单主键
     * @return 结果
     */
    public int deleteSysJishiOrderByOrderId(Long orderId);

    /**
     * 查询未支付的计时计费订单。
     *
     * @param userId
     * @return
     */
    SysJishiOrder queryUnpaidOrder(Long userId);

    /**
     * 查询待使用的计时计费订单。
     *
     * @param userId
     * @return
     */
    SysJishiOrder queryToUseOrder(Long userId);

    /**
     * 查询正在使用中的计时计费订单。
     *
     * @param userId
     * @return
     */
    SysJishiOrder queryUsingOrder(Long userId);

    List<SysJishiOrder> queryFulfilledOrder(Long userId);

    List<SysJishiOrder> queryAllOrder(Long userId);

    SysJishiOrder queryInProgressOrder(Long userId);

}
